package com.zijidelu.luframework.base.dict;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;

/**
 * 翻译注解。
 * <p>
 * 用于翻译枚举值。
 *
 * @author ZIJIDELU
 * @datetime 2025/10/15 21:56
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DictField {
    /**
     * 翻译的枚举类。
     *
     * @return 枚举类
     */
    Class<? extends Dict<?, ?>> value();

    /**
     * 目标字段。
     *
     * @return 目标字段名
     */
    String targetFieldName();

    /**
     * 是否反转翻译。
     * <p>
     * 如果为 true，则枚举值作为 key，翻译后的字符串作为 value。
     *
     * @return 是否反转翻译
     */
    boolean reverse() default false;
}
